package com.itlong.cloud.property.dao;

import com.itlong.cloud.POJO.VO.property.PropertyArrearPeopleManageVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      欠费人员管理持久层接口
 * </desc>
 *
 * @createDate 2019/05/22
 */
@Mapper
@Repository
public interface IPropertyArrearPeopleManageDao {

    /**
     * <desc>
     *      分页获取欠费人员管理信息
     * </desc>
     *
     * @param params 查询参数集
     * @return 欠费人员管理分页信息
     * @author wangzhi
     * @createDate 2019/05/22
     */
    List<PropertyArrearPeopleManageVO> getPage(Map<String, Object> params);

    /**
     * <desc>
     *      获取欠费人员管理信息总记录数
     * </desc>
     *
     * @param params 查询参数集
     * @return 欠费人员管理信息总记录数
     * @author wangzhi
     * @createDate 2019/05/22
     */
    Integer getRecordCount(Map<String, Object> params);

    /**
     * <desc>
     *      获取限欠费房间管理表中的已存在的该房间记录数
     * </desc>
     *
     * @param projectId 项目编号
     * @param roomId 房间id
     * @return 限欠费房间管理表中的该房间记录数
     * @author wangzhi
     * @createDate 2019/05/22
     */
    Integer getExistCount(@Param("projectId") String projectId, @Param("roomId") String roomId);

    /**
     * <desc>
     *      添加
     * </desc>
     *
     * @param map 保存参数集
     * @return 受影响行数
     * @author wangzhi
     * @createDate 2019/05/22
     */
    Integer save(Map<String, Object> map);

    /**
     * <desc>
     *      条件获取导出的欠费人员管理信息
     * </desc>
     *
     * @param params 查询参数集
     * @return 欠费人员管理列表信息
     * @author wangzhi
     * @createDate 2019/05/22
     */
    List<PropertyArrearPeopleManageVO> getAllData(Map<String, Object> params);

    /**
     * <desc>
     *      房间id获取导出的欠费人员管理信息
     * </desc>
     *
     * @param roomIdList 房间id集合
     * @return 欠费人员管理列表信息
     * @author wangzhi
     * @createDate 2019/05/22
     */
    List<PropertyArrearPeopleManageVO> getDataByRoomIds(@Param("list") List<String> roomIdList, @Param("projectId") String projectId);

    /**
     * <desc>
     *      获取项目绑定的分润规则类型
     * </desc>
     *
     * @param projectId 项目id
     * @return 项目绑定的分润规则类型
     * @author wangzhi
     * @createDate 2019/06/12
     */
    String getProjectProfitType(@Param("projectId") String projectId);
}
